Stochastic gradient descent (SGD) [5] là một thuật toán đơn giản, mà liên tục thực hiện các bước giảm nhỏ trên bề mặt sai số được xác định bởi một hàm tổn thất với một vài tham số. Thuật toán này đạt hiệu quả cao khi tập dữ liệu huấn luyện lớn do đó SGD được áp dụng thành công với quy mô lớn và các vấn đề học máy thưa thớt thường gặp phải trong xếp hạng văn bản và xử lý ngôn ngữ tự nhiên, thuật toán SGD dễ dàng mở rộng cho các trường hợp lớn hơn 105 mẫu huấn luyện và hơn 105 tính năng.
a. Bài toán: Cho ma trận đầu vào với dữ liệu thưa là RN*M (với i=1..N, j=1..M). và ma trận Wi và ma trận Hj là hai ma trận thừa số của ma trận R. Bài toán đặt ra là tìm ma trận W và H sao cho:: * * * N M N K K M R W H Tương đương với: ij i j r w h (wi là vector nhân tố của người dùng i, hj là vector nhân tố của sản phẩm j) Trong đó: với K là một trọng số bất kỳ và K <M,N Ma trận WN*K là một hàng nhân tố của người dùng của ma trận R. Ma trận HK*M là một cột nhân tố của sản phẩm của ma trận R
Giá trị bị mất mát được ký hiệu là: Lij(Wi*, H*j) thể hiện sự tổn thất giá trị tại (i,j) và được tính bằng công thức sau: 2 2 * ij i , *j ij i j L W H r w h Hàm sai số trung bình (hay là mất mát trung bình) là: 2 ij i* *j (i, j) Z 1 W, (W , H ) L H L n Mục tiêu bài toán là giá trị trung bình của hàm tổn thất càng nhỏ thì tính hiệu quả của mô hình được đánh giá cao và ngược lại. Tức là tìm: ij i* *j W , (i, j) Z arg min (W , H ) H L b. Giải quyết vấn đề: Mục tiêu của thuật toán SGD là giá trị tối thiểu θ*∈Rk (với k ≥ 1) để tối thiểu
hàm sai số L(θ), với giá trị khởi tạo ban đầu là θ0 , SGD cập nhật các hàm xấp xỉ gradient Lˆ 0 hay chính là giá trị có nhiễu của L’(θ0), sau đó SGD sẽ điều chỉnh tham số bằng việc lặp lại công thức cập nhật ngẫu nhiên:
Trong đó: L(θ) là sai số tổng cộng của tất cả n phần tử so với ma trận W, H trong ma
trận thừa số.
n là kí hiệu số thứ tự của bước cập nhật
{ɛn} là một chuỗi giảm dần xác định lượng cập nhật (giá trị chuỗi cập nhật là không âm và hữu hạn)
n
L là hướng giảm có độ dốc lớn nhất và ˆ
n
L là giá trị có nhiễu của nó Quá trình hoạt động của thuật toán SGD khi tham số θ nằm trong không gian 2 chiều được mô phỏng như sau:
Bước 1: Tìm giá trị tối thiểu θ* Bước 2: khởi tạo giá trị ban đầu θ0 Bước 3:
Với mũi tên đỏ biểu thị định hướng của L 0 và mũi tên xanh biểu thị định hướng của 0 ˆ L
Lý thuyết xấp xỉ ngẫu nhiên chứng tỏ rằng với một số điều kiện rằng buộc thì nhiễu trong xấp xỉ gradient sẽ triệt tiêu và SGD sẽ hội tụ đến một tập các điểm bất động thỏa mãn L = 0, tất nhiên các điểm bất động này có thể là cực tiểu, cực đại, hay là các điểm yên ngựa và thường thì chúng sẽ hội tụ tại một điểm cực tiểu do tính có nhiễu của bài toán. Tuy nhiên SGD chỉ là tìm ra một điểm cực tiểu mà không chắc đó là toàn
cục nên có nhiều phương pháp được dùng để năng cao khả năng tìm ra điểm này như chạy thuật toán SGD nhiều lần và mỗi lần xuất phát tại một điểm lấy ngẫu nhiên nào đó. 2.4.4.3. Thuật toán SGD dùng cho phân tích ma trận (ma trận thừa số)
Để áp dụng thuật toán SGD cho bài toán phân tích ma trận, ta xác định tập θ = (W,H), khi đó ta phân tích hàm sai số như sau: ij * * (i, j) ( ) (W ,i j) z L L H Trong đó: tập dữ liệu huấn luyện Z
Hàm sai số Lij là sai số của 1 giá trị phần tử rij∈R với tích của 2 vector thành phần wi và hj Wi* là vector hàng thứ i của ma trận W H*j là vector cột thứ j của ma trận H Như vậy tổng sai số là: ij * * (i, j) ( ) (W ,i j) z L L H Ta ước lượng xấp xỉ gradient như sau: với N=|Z| và điểm huấn luyện z được chọn ngẫu nhiên từ tập dữ liệu huấn luyện, ta có: i j * * ˆ ( , z) (W , ) z z i j L NL H
Các giai đoạn thực hiện thuật toán SGD:
Đầu tiên tôi chọn ngẫu nhiên mẫu dữ liệu huấn luyện z∈Z (Z là tập dữ liệu huấn luyện ). Sau khi đã chọn được mẫu dữ liệu huấn luyện để tiến hành thực nghiệm với thuật toán SGD trên nó ta tính gradient xấp xỉ Lˆ0,z là giá trị có nhiễu củaL0, z, từ đó ta cập nhật các tham số ɛn và Lˆ0,z để tính giá trị θ1:
1 0 0Lˆ 0,z
Để tìm được tối thiểu hàm sai số L thì sẽ thực hiện lặp lại n lần các bước trên, qua n lần cập nhật giá trị θn+1 là: 1 ˆ , n n nL n z Thuật toán SGD thay vì truy cập toàn bộ tập dữ liệu huấn luyện thì sẽ truy cập dữ liệu ngẫu nhiên (nghĩa là sẽ chọn một mẫu dữ liệu huấn luyện ngẫu nhiên) để thực hiện thuật toán. Và giá trị trọng số θ được cập nhật ngay từ mẫu dữ liệu huấn luyện đầu tiên thay vì toàn bộ bộ dữ liệu huấn luyện. Điều đó, giúp giảm thiểu thời gian thực hiện một cách đáng kể. Ngoài ra do thuật toán SGD chỉ chọn một hoặc một số mẫu huấn luyện thay vì sử dụng toàn bộ tập dữ liệu huấn luyện nên được sử dụng hiệu quả trong trường hợp tập dữ liệu huấn luyện lớn. Sự hội tụ của thuật toán Stochastic gradient descent đã được phân tích bằng cách sử dụng các lý thuyết về tối ưu hóa Convex (lồi) và xấp xỉ ngẫu nhiên . Khi giá trị θ giảm với một tỷ lệ thích hợp, và tùy thuộc vào các giả định, ngẫu nhiên gradient descent hội tụ gần như chắc chắn đến mức tối thiểu địa phương.
Hình ảnh sau đây sẽ cho thấy được tính hiệu quả của thuật toán SGD so với một số thuật toán khác như ALS và LBFGS được thử nghiệm trên tập dữ liệu của Netflix:
Thuật toán Stochastic gradient descent (SGD) là thuật toán phổ biến cho các nghiên cứu một loạt các mô hình trong học máy: máy vector hỗ trợ, hồi quy logistic và mô hình đồ họa. Thuật toán SGD được sử dụng rộng rãi, kết hợp với thuật toán lan truyền ngược thì SGD là thuật toán nghiên cứu tiêu chuẩn về mạng nơron nhân tạo. 2.4.4.4. So sánh giữa thuật toán GD và SGD
GD SGD
Mẫu huấn luyện
Truy cập đến toàn bô bộ dữ liệu huấn luyện đầy đủ
Chỉ sử dụng một hoặc một số mẫu huấn luyện lựa chọn ngẫu nhiên trong bộ dữ liệu huấn luyện
Trọng số Cập nhật qua bộ huấn luyện đầy đủ Cập nhật ngay từ mẫu đầu tiên
Thời gian Đối vơi tập dữ liệu huấn luyện lớn sẽ mất nhiều thời gian do mỗi lần lặp lại khi cập nhật các giá trị trọng số phải chạy qua tập dữ liệu huấn huyện đầy đủ
Giảm thời gian đáng kể vì trọng số được cập nhật ngay từ mẫu huấn luyện đầu tiên.
Hội tụ Hội tụ chậm hơn Nhanh hơn nhiều
Xấp xỉ gần nhất
Xác định do truy cập toàn bộ tập dữ liệu huấn luyện trong cùng một số lần lặp lại
Tối ưu và ngẫu nhiên theo từng mẫu huấn luyện khác nhau
Bảng 2.6: So sánh giữa GD và SGD Nhận xét:
Qua quá trình nghiên cứu thì có thể nhận xét về ưu điểm và nhược điêm của thuật toán SGD như sau: Đối với ưu điểm như đã phân tích ở trên: SGD đạt hiệu quả khi sử dụng với tập dữ liệu huấn luyện lớn, với dữ liệu là thưa thớt, ngoài ra thuật toán SGD dễ dàng để thực hiện, đạt hiệu quả cao trong vấn đề tối thiểu hàm sai số đưa ra những khuyến nghị hữu ích phù hợp với quan điểm người sử dụng... Bên cạnh những ưu điểm thì SGD cũng có những nhược điểm là SGD đòi hỏi một số siêu tham số như là các tham số chính quy và số lần lặp lại và thuật toán SGD khó khăn khi dùng một cách trực tiếp cho bài toán phân tích ma trận có kích thước lớn và rất lớn như một số dữ liệu
dùng cho môi trường Web. Mặc dù, thuật toán SGD đã giảm thiểu được thời gian thực hiện rất đáng kể nhưng chưa đạt mức tối ưu hóa thời gian thực hiện.
2.5. Tiêu chuẩn đánh giá
2.5.1. Mean absolute error (MAE)
Trong lý thuyết thống kê, các sai số tuyệt đối trung bình (MAE) [4] là một đại lượng dùng để đo lường giá trị dự đoán với kết quả thực tế. MAE đo lường chính xác cho các biến liên tục. MAE là tuyến tính nghĩa là tất cả các giá trị khác biệt có trọng số bình đẳng trong giá trị trung bình. Tính toán của MAE là tương đối đơn giản, nó tổng hợp các giá trị tuyệt đối của lỗi để có được “tổng lỗi”, sau đó chia cho tổng số lỗi n. Như vậy, sai số tuyệt đối trung bình được định nghĩa bằng công thức sau: 1 1 ˆ n ij ij i MAE r r n
Trong đó: rij là đánh giá thực tế của người dùng ui cho sản phẩm pj và rˆij là đánh giá do hệ thống dự đoán của người dùng ui cho sản phẩm pj, n số lần dự đoán.
2.5.2. Root mean square error (RMSE)
Khi dự đoán đánh giá của người dùng ui đối với item pj thì việc xảy ra sai số so với thực tế đánh giá của user ui đối với item pj là không tránh khỏi. Root Mean Square Error (RMSE) [2] là một biện pháp thường được sử dụng trong sự trường hợp khác biệt giữa các giá trị dự đoán của một mô hình và các giá trị thực sự quan sát từ môi trường đang được mô hình hóa. Những khác biệt đó còn được gọi là phần dư, và RMSE nhằm mục đích để tổng hợp tất cả các phần dư thành một thước đo duy nhất của khả năng dự đoán của hệ thống khuyến nghị cho người dùng.
Các RMSE của một mô hình dự đoán định nghĩa là căn bậc hai của trung bình bình phương lỗi: 2 , ˆ ( ) test um um u m S test r r RMSE S
Trong đó: (u,m)Stest là người dùng u đánh giá sản phẩm m thuộc tập dữ liệu kiểm tra. Stest=n là số lần tiến hành kiểm tra.
rum là đánh giá thực tế của người dùng u với sản phẩm m
ˆum
r là đánh giá dự đoán của người dùng u với sản phẩm m do hệ thống khuyến nghị dự đoán
Ta có thể thấy giá trị của RMSE càng nhỏ thì mức độ hiệu quả của hệ thống khuyến nghị cụ thể hơn là thuật toán được sử dụng càng cao. Do tầm quan trọng của hệ thống khuyến nghị trong việc cải thiện chất lượng dịch vụ, với mục tiêu nhằm giảm thiểu sai số bình phương trung bình Netflix đã bắt đầu một cuộc thi với giải thưởng lớn để thu hút các nhà nghiên cứu trên toàn thế giới để làm việc về vấn đề này. Hiện nay, nhiều nhà nghiên cứu, bao gồm nhiều chuyên gia đang tập trung vào vấn đề này và đã có những tiến bộ lớn. MAE và RMSE có thể được sử dụng cùng nhau để chuẩn đoán sự thay đổi trong các lỗi trong một tập dữ liệu các đánh giá. Cả MAE và RMSE đều có thể dao động từ 0 đến và là những giá trị theo định hướng giảm: giá trị càng nhỏ càng tốt.
Trong luận văn này, chúng tôi sử dụng phương pháp sai số bình phương trung bình RMSE để tiến hành thực nghiệm và so sánh với các phương pháp và thuật toán đã nêu ở trên là: Khoảng cách Manhattan, Euclidean, hệ số tương quan Pearson, hệ số tương tự Cosine, K- nearest neighbor dựa trên sản phẩm và thuật toán SGD.
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ VỚI DỮ LIỆU PHIM ẢNH
Mục tiêu chính của chương này là chạy thực nghiệm tập dữ liệu của Movielens để so sánh và đánh giá mức độ hiệu quả của từng phương pháp và thuật toán đã trình bày đối với hệ thống khuyến nghị dựa vào lọc cộng tác. Trong chương 2, chúng tôi đã giới thiệu các phương pháp tính độ tương tự giữa các người dùng cơ bản là: Manhattan, Euclidean, Pearson, Cosine, K-nearest neighbor và một phương pháp khác của lọc cộng tác nhằm mục đích để cực tiểu hóa hàm sai số là thuật toán SGD (Stochastic gradient descent), chúng tôi sẽ tiến hành thực nghiệm để so sánh và đánh giá hiệu quả giữa các phương pháp: Manhattan , Euclidean, Pearson, Cosine, K-nearest neighbor dựa vào sản phẩm và thuật toán SGD.
3.1. Dữ liệu thực nghiệm. 3.1.1. Tập dữ liệu thực nghiệm. 3.1.1. Tập dữ liệu thực nghiệm.
Để thực nghiệm tôi sử dụng một trong các bộ dữ liệu được đăng tải trên trang Movielens của nhóm nghiêm cứu GroupLens. GroupLens là một nhóm nghiên cứu tại Khoa Khoa học Máy tính và Kỹ thuật của Đại học Minnesota, chuyên về hệ thống khuyến nghị, cộng đồng trực tuyến, công nghệ di động, thư viện kỹ thuật số, và các hệ thống thông tin địa lý địa phương. Các thành viên của dự án nghiên cứu GroupLens được tham gia vào nhiều dự án nghiên cứu liên quan đến các lĩnh vực lọc thông tin, lọc cộng tác, và hệ thống khuyến nghị. Dự án được dẫn dắt bởi giáo sư John Riedl và Joseph Konstan. Dự án bắt đầu để khám phá lọc cộng tác tự động vào năm 1992, nhưng nổi tiếng nhất trên toàn thế giới cho thử nghiệm là một hệ thống lọc cộng tác tự động cho Usenet News năm 1996. Kể từ đó dự án đã mở rộng phạm vi nghiên cứu tổng thể các giải pháp lọc thông tin, tích hợp trong phương pháp dựa trên nội dung cũng như cải tiến công nghệ lọc cộng tác hiện tại.
Movielens là một hệ thống khuyến phổ biến, là một website gợi ý phim cho người dùng xem, dựa trên sở thích phim của họ và sử dụng phương pháp lọc cộng tác, được nhóm GroupLens tạo ra vào năm 1997.
Bộ dữ liệu tôi sử dụng của Movielens chứa các dữ liệu đánh giá rõ ràng cho các phim, có đặc điểm sau:
Với 100000 đánh giá được thực hiện bởi 1000 người dùng trên 1700 bộ phim. Các phim nhận giá trị đánh giá trong khoảng từ 1 đến 5.
Mỗi người sử dụng đã đánh giá ít nhất là 20 phim.
Thông tin cá nhân đơn giản cho người sử dụng (tuổi, giới tính, nghề nghiệp, zip code_mã bưu chính)
Các dữ liệu được thu thập thông qua các trang web MovieLens (Movielens.umn.edu) trong khoảng thời gian bảy tháng từ ngày 19 tháng 9 năm 1997 và được thông qua ngày 22 tháng 04 năm 1998. Trong bộ dữ liệu này, người sử dụng có ít hơn 20 xếp hạng hoặc không có thông tin cá nhân hoàn chỉnh sẽ bị loại bỏ khỏi bộ dữ liệu.
3.1.2. Thông tin chi tiết về định dạng của bộ dữ liệu của Movielens[15]
ml-data.tar.gz - tập tin nén tar. Để xây dựng lại các tập tin dữ liệu u: gunzip ml-data.tar.gz
tar xvf ml-data.tar mku.sh
u.data - Bộ u dữ liệu đầy đủ, 100000 xếp hạng của 943 người dùng trên 1682 mặt hàng Mỗi người dùng có đánh giá ít nhất là 20 phim. Người sử dụng và các mặt hàng được đánh số liên tục từ 1 và dữ liệu được sắp xếp ngẫu nhiên. Cấu trúc của 1 nhãn riêng biệt: user id | item id | rating | timestamp Các dấu thời gian là unix giây kể từ 01/01/1970 theo giờ UTC u.info - Số người users, items, and rating trong các u tập dữ liệu u.item - Thông tin về các items (movies, một nhãn có dạng: movie id | movie title | release date | video release date | IMDb URL | unknown | Action | Adventure | Animation | Children's | Comedy | Crime | Documentary | Drama | Fantasy |
Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi | Thriller | War | Western | movie id là được sử dụng trong tập dữ liệu u.data. u.genre - Một danh sách các thể loại phim u.user - thông tin cá nhân của user; một nhãn có dạng: user id | age | gender | occupation | zip code user id là những người sử dụng trong tập dữ liệu u.data. u.occupation - Danh sách các ngành nghề.
u1.base 943 users, 1650 items, 80.000 ratings - Bộ dữ liệu u.data được tách thành các bộ ui.base và ui.test (với i=1..5) để làm các bộ dữ liệu huấn luyện và kiểm tra bởi mku.sh. Mỗi u1, ...,u5 có bộ kiểm tra riêng biệt. u1.test 459 users, 1410 items, 20.000 ratings u2.base 943 users, 1648 items, 80.000 ratings u2.test 653 users, 1420 items, 80.000 ratings u3.base 943 users, 1650 items, 80.000 ratings u3.test 869 users, 1423 items, 80.000 ratings u4.base 943 users, 1660 items, 80.000 ratings u4.test 923 users, 1394 items, 80.000 ratings u5.base 943 users, 1650 items, 80.000 ratings u5.test 927 users, 1407 items, 80.000 ratings
Bảng 3.1: Định dạng các bộ dữ liệu huấn luyện và kiểm tra của Movielens mku.sh - Một kịch bản để tạo ra tất cả các dữ liệu từ bộ .data
3.2. Phương pháp thực nghiệm 3.2.1. Môi trường thực nghiệm 3.2.1. Môi trường thực nghiệm
Tôi tiến hành thực nghiệm dựa trên các cơ sở sau:
Cấu hình máy: Chip Intel(R) Core i3, Ram 2GB, 32-bit
Ngôn ngữ lập trình: Python
Phần mềm hỗ trợ: Python 2.7.8 và Pycharm 3.4.1, cmd trên Windows 7
Tập dữ liệu sử dụng để thực nghiệm: Movielens gói dữ liệu 100.000 đánh giá được đánh giá bởi 1000 người dùng với 1700 bộ phim.
Các phương pháp, thuật toán để tiến hành thực nghiệm và đánh giá: Manhattan , Euclidean, Pearson, Cosine, K-nearest neighbor và thuật toán SGD.
3.2.2. Phương pháp tiến hành thực nghiệm
Để có thể tiến hành so sánh các phương pháp thì tôi dựa vào bộ dữ liệu 100.000 đánh giá của Movielens để thực nghiệm. Tôi tiến hành thực nghiệm các bước sau với mỗi phương pháp và thuật toán được nghiên cứu và trình bày trong luận văn như mục đích thực nghiệm đã nêu: đầu tiên, tôi sử dụng tập u1.test làm tập dữ liệu kiểm tra và u1.base làm tập dữ liệu huấn luyện để tiến hành thực nghiệm: dự đoán các đánh giá rx của người dùng dựa vào tập dữ liệu huấn luyện u1.base. Như vậy, với mỗi người dùng ui sẽ có hai giá trị là: dự đoán đánh giá rx và đánh giá thực tế rij. Chúng tôi sử dụng hàm sai số RMSE để tiến hành tính giá trị sai số của những dự đoán so với những giá trị thực tế rij. Sau khi thực nghiệm với tập dữ liệu u1.test tôi thu được giá trị RMSE1. Để kết quả thực nghiệm đạt hiệu quả tôi tiến hành việc kiểm thử lặp đi lặp lại nhiều lần bằng cách: chọn tập dữ liệu kiểm tra khác nhau để tiến hành thực nghiệm dựa trên các phương pháp đã nêu .Tôi tiến hành tương tự với các bộ tập dữ liệu ui.test và ui.base tôi thu được các giá trị RMSEi (với i=2..5)
Như vậy, với mỗi phương pháp tôi sẽ thu được các giá trị RMSEi (với i=1..5) tương ứng sau 5 lần thử nghiệm. Từ đây, tôi tìm được sai số trung bình của mỗi phương pháp theo công thức tính RMSEtb.
Đối với mỗi phương pháp sẽ tìm ra được một giá trị RMSEtb tương ứng, tôi sẽ so sánh mức độ hiệu quả của các phương pháp dựa vào các giá trị RMSEtb, giá trị RMSEtb
3.3. So sánh và đánh giá kết quả thực nghiệm 3.3.1. Kết quả thực nghiệm 3.3.1. Kết quả thực nghiệm
Sau khi tiến hành thực nghiệm trên 5 tập dữ liệu kiểm tra khác nhau bằng các phương pháp lần lượt là: Manhattan , Euclidean, Pearson, Cosine, K-nearest neighbor và thuật toán SGD thì tôi thu được kết quả sai số bình phương RMSE với từng tập dữ liệu kiểm tra và RMSEtb của 5 lần kiểm thử của từng phương pháp thể hiện ở bảng 3.2 sau: Phương pháp Tập dữ liệu test RMSETB Tập số 1 Tập số 2 Tập số 3 Tập số 4 Tập số 5 Manhattan 1.861018 1.675538 1.612171 1.849643 1.927305 1.785135 Euclidean 2.070323 1.952278 1.838074 1.933170 1.991735 1.957116 Pearson 1.368335 1.353072 1.349650 1.347620 1.352212 1.354178 Cosine 1.382027 1.291765 1.306816 1.388582 1.386989 1.351236 K-nearest neighbor 1.338633 1.354632 1.339307 1.296286 1.322525 1.330277 Thuật toán SGD 1.19697 0.81295 1.26116 0.9704 0.94966 1.038228
Bảng 3.2: Giá trị RMSE và RMSEtb thực nghiệm trên tập dữ liệu Movielens
Biểu đồ biểu thị các giá trị RMSE của từng phương pháp được kiểm thử trên 5 tập dữ liệu kiểm tra khác nhau và các tập dữ liệu huấn luyện khác nhau.
Biểu đồ 3.1: RMSE sau 5 lần thực nghiệm với tập dữ liệu Movielens
Biểu đồ biểu thị các giá trị RMSEtb của các phương pháp và thuật toán đã nêu.
3.3.2. So sánh và đánh giá
Từ các số liệu và kết quả thực nghiệm đã được đưa ra ở trên, ta có thể đưa ra một số nhận định sau:
3.3.2.1. Các phương pháp cơ sở
Tính hiệu quả: Đối với các phương pháp cơ bản thì ta thấy K-nearest neighbor
cho kết quả RMSEtb nhỏ nhất, từ những nghiêm cứu và tìm hiểu cho đến việc phân tích các giá trị sau thực nghiệm ta có thể thấy được phương pháp K-nearest neighbor bên cạnh việc kế thừa những ưu điểm của các phương pháp trước trong vấn đề lọc cộng tác mà còn khác phục những hạn chế của lọc cộng tác dựa trên người dùng.
Tính ổn định: Tập dữ liệu của Movielens tôi sử dụng để thực nghiệm có đặc điểm
là thưa thớt và người dùng có những hành vi khác nhau. Căn cứ vào các kết quả kiểm thử các thuật toán lọc cộng tác ở bảng 1 thì mỗi cách tiếp cận bằng phương pháp khác nhau cho ra những kết quả đo lường khác nhau, thử nghiệm trên các tập dữ liệu kiểm tra khác nhau cũng cho ra các giá trị sai số RMSE khác nhau. Tuy nhiên ta có thể thấy được qua biểu đồ 1 thì các phương pháp Pearson, Cosine và KNN có tính ổn định hơn hai phương pháp Manhattan và Euclidean. Nghĩa là dù tiến hành trên các tập dữ liệu kiểm tra và huấn luyện khác nhau nhưng sai số RMSE của các phương pháp Pearson, Cosine và KNN thì nhỏ hơn đáng kể. Kết quả thu được như trên vì lý do như đã nghiên cứu và trình bày trong chương 2 hai phương pháp Pearson, Cosine đạt hiệu quả khi sử dụng với tập dữ liệu thưa thớt hoặc có những hành vi khác nhau trong việc đánh giá sản phẩm vì thế trong trường hợp này 2 phương pháp này đạt hiệu quả hơn so với phương pháp Manhattan và Euclidean chỉ phù hợp khi tập dữ liệu là dày đặc. 3.3.2.2. Thuật toán SGD Qua quan sát ở bảng 3.2, biểu đồ 3.1 và biểu đồ 3.2 thì ta có thể thấy kết quả sai số bình phương trung bình RMSE của các phương pháp thì có thể thấy thuật toán SGD đạt được hiệu quả vượt trội và tối ưu hơn nhiều so với các phương pháp khác. Bên cạnh đó, các phương pháp cơ bản đã được trình bày ở chương 2 chỉ quan tâm đến hai yếu tố người dùng và sản phẩm, còn phương pháp nhân tố tiềm ẩn hay cụ thể hơn là thuật toán SGD quan tâm chi tiết hơn rất nhiều cụ thể là đến từng nhân tố như: thể loại, đạo diễn, diễn viên… đi sâu vào các đặc tính của người dùng và sản phẩm.
Ngoài ra, do SGD chỉ sử dụng một số mẫu dữ liệu huấn luyến chứ không phải
truy cập toàn bộ dữ liệu huấn luyện, hơn nữa trọng số θ được cập nhật ngay từ mẫu
huấn luyện đầu tiên nên thuật toán SGD mang lại hiệu quả về thời gian đáng kể so với các phương pháp khác. Bên cạnh đó, độ tiệm cận về 0 nhanh, mang lại giá trị xấp xỉ gần nhất tối ưu và ngẫu nhiên (phụ thuộc vào mẫu huấn luyện lựa chọn). Từ đó cải thiện hiệu quả tối đa của hệ thống khuyến nghị và đưa ra các khuyến nghị hữu ích cho người sử dụng.
KẾT LUẬN
1. Kết quả đạt được:
Nghiên cứu tổng quát về hệ thống khuyến nghị: các kỹ thuật lọc cho hệ thống khuyến nghị, luận văn nghiên cứu tập trung về kỹ thuật lọc cộng tác.
Trình bày nghiên cứu về các phương pháp cơ bản để tìm kiếm một hoặc một nhóm người dùng gần nhất:
+ Phương pháp cơ bản: Manhattan, Euclidean, Pearson, Cosine
+ Phương pháp cải tiến lọc cộng tác: K-nearest neighbor dựa vào người dùng và K-nearest neighbor dựa vào sản phẩm Luận văn trình bày về mô hình nhân tố tiềm ẩn với phương pháp ma trận thừa số, cụ thể hơn là thuật toán SGD (Stochastic gradient descent) mục đích để cực tiểu hóa hàm sai số, áp dụng đạt hiệu quả khi tập dữ liệu huấn luyện lớn, tối ưu thời gian và đạt hiệu quả cao trong các hệ thống khuyến nghị. Sau đó, chúng tôi tiến hành thực nghiệm trên tập dữ liệu Movielens gói dữ liệu 100.000 đánh giá được đánh giá bởi 1000 người dùng với 1700 bộ phim. Cuối cùng, chúng tôi sẽ phân tích, so sánh và đánh giá tính hiệu quả từng phương pháp và thuật toán đã được trình bày dựa trên kết quả thực nghiệm.
2. Hướng nghiên cứu tiếp theo của luận văn
Hướng nghiên cứu tiếp theo sẽ tập trung vào việc kết hợp giữa kỹ thuật lọc cộng tác và kỹ thuật lọc dựa vào nội dung, sau đó tiến hành kiểm nghiệm hiệu quả. Đây cũng là chủ đề mang tính thời sự cao của cộng đồng nghiên cứu về lọc thông tin
TÀI LIỆU THAM KHẢO
[1]. Ron zacharski, A programmer’s Guide to Data Mining, The Ancient Art of the
Numerati, 2012
[2]. Zheng Wen, Recommendation System Based on Collaborative Filtering, 2008
[3]. Yehuda Koren, Robert Bell and Chris Volinsky, Matrix factorization techniques
for recommender system, IEEE Computer, 2009
[4]. Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl, Item-Based
Collaborative Filtering Recommendation Algorithms, University of Minnesota,
Minneapolis, MN 55455
[5]. Léon Bottou, Stochastic Gradient Descent Tricks, Microsoft Research, Redmond,
WA,2012
[6]. Shameem Ahamed Puthiya Parambath, Matrix Factorization Methods for
Recommender Systems, Master's Thesis in Computing Science, 2013.
[7]. Francesco Ricci, Lior Rokach, Bracha Shapira, Paul B. Kantor, Recommender
Systems Handbook, Springer, 2011.
[8]. Xiaoyuan Su, Taghi M. Khoshgoftaar, A Survey of Collaborative Filtering
Techniques,Department of Computer Science and Engineering, Florida Atlantic
University, 2009.
[9]. Michael D.Ekstrand, John T. Riedl, Joseph A. Konstan, Collaborative Filtering
Recommender Systems, University of Minnesota, 2011
[10].Francesco Ricci, Lior Rokach, Bracha Shapira, Paul B. Kantor, Recommender
Systems Handbook, Springer, 2011.
[11].Michael D.Ekstrand, John T. Riedl, Joseph A. Konstan, Collaborative Filtering
Recommender Systems, University of Minnesota, 2011
[12].T. Hofmann, Latent Semantic Models for Collaborative Filtering, ACM Trans.
Inf.Syst., 22(1):89-115, 2004. [13].http://www.amazon.com [14].https://www.netflix.com [15].https://movielens.umn.edu
[16].https://lists.cc.gatech.edu/pipermail/mlpack/2013-April/000077.html
[17].Jonathan L. Herlcocker, Joseph A. Konstan, Loren G. Terveen, and John T. Riedl,
Evaluating Collaborative Filtering Recommender Systems, Oregon State University and